<?php
/**
 * класс отображение проектов
 *
 */
class View_Project{
	
	/**
	 * отвечает за отображение проектов пользователя
	 *
	 * @param unknown_type $arrProjects
	 */
	public static function displayMyProjects($arrProjects){
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Мои проекты</h1>
		</div></div></div></div></div>';
		$size = sizeof($arrProjects);
		if ($size != 0){
			
			for ($num = 0; $num <sizeof($arrProjects); $num++){
				echo '
				<table>
					<tr>
						<td rowspan="2">
							' . ($num +1) . ')' . '
						</td>
						<td>
							<p><a href="' . W_ABSPATH  .'project/' . $arrProjects[$num]['idProject'] . '">' . $arrProjects[$num]['name'] . '</a></p>
						</td>
					</tr>
					<tr>
						<td>
							<p>' . $arrProjects[$num]['description'] . '</p>
						</td>
					</tr>
				</table>
				';
			}		
		}
		else echo '<h3>К сожалению, вы не состоите не в одном из проектов</h3>';
		echo '<div class="floatRight"><h4><a href="' . W_ABSPATH . 'project/new">Создать проект</a></h4></div>';
	}
	
	/**
	 * отвечает за отображение конкретного проекта
	 */
	public static function displayProjectInfo($arrProject, $status){		
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Проект "' . $arrProject['name'] . '"</h1>
		</div></div></div></div></div>';
		echo '
		<p>Описание: ' . $arrProject['description'] . '</p>';
		if ($status == 2)
		echo '
		<div class="floatRight">
			<form method="POST" action="' . W_ABSPATH . 'myProjects"/>			
				<a href="' . W_ABSPATH . 'project/editProject/' . $arrProject['idProject'] . '">
					<img src="' . W_IMAGES . 'icons/edit.gif" alt="Радактировать" title="Радактировать"/>
				</a>&nbsp;
				<input type="image" name="delete" onclick="return confirm(\'Вы действительно хотите удалить проект?\')" src="' . W_IMAGES . 'icons/delete.gif" />
				<input type="hidden" name="idProject" value="' . $arrProject['idProject'] . '" />
			</form>
		</div>';
		echo '<br /><br />';
	}
	
	/**
	 * отвечает за отображение сообщесва в форме для редактирования
	 */
	public static function displayProjectForEdit($arrProject, $idUser, $page){
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">';
				echo ($arrProject['idProject'] == NULL) ? 'Создание нового проекта' : 'Редактирование "' . $arrProject['name'] . '"';
			echo '
			</h1>
		</div></div></div></div></div>';
		echo '
		<form method="POST">
			<p>Название проекта:</p><p> <input type="text" name="name" value="' . $arrProject['name'] . '"/><p>
			<p>Описание проекта:</p><p> <textarea style="width:500px; height:50px;" name="description">' . $arrProject['description'] . '</textarea></p>
			<input type="hidden" name="idProject" value="' . $arrProject['idProject'] . '">
			<input type="hidden" name="idUser" value="' . $idUser . '">
			<p><input type="submit" value="сохранить"></p>			
		</form>';
		echo '
		<h4>
			<a href="' . W_ABSPATH;
			if ($page == 'edit') echo 'project/' . $arrProject['idProject'];
			elseif ($page == 'creation') echo 'myProjects';
			echo '">Назад
			</a>
		</h4>';
	}
	
	/**
	 * отвечает за отображение списка участников проекта
	 */
	public static function displayMembers($arrMembers, $idProject, $status){
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Участники проекта</h1>
		</div></div></div></div></div>';
		for ($num = 0; $num < sizeof($arrMembers); $num++){
			echo 
			'<p>' . 
				($num +1) . ')<a href="' . W_ABSPATH . 'user' . $arrMembers[$num]['ID_user'] . '">
											' . $arrMembers[$num]['login'] . '
											</a>
			</p>';
		}
		if ($status == 2) echo '<p class="floatRight"><a href="' . W_ABSPATH . 'project/editMembers/' . $idProject . '">Редактировать состав</a></p>';
	}
	
	/**
	 * отображение списка участникло впроекта с возможностью редактирования и добавления новых членов
	 */
	public static function displayMembersWithEdit($arrMembers, $arrProject){
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Участники проекта "' . $arrProject['name'] . '"</h1>
		</div></div></div></div></div>';
		for ($num = 0; $num <sizeof($arrMembers); $num++){
			echo '
			<table>
				<tr>
					<td rowspan="2">
						' . ($num + 1 ) . ')
					</td>
					<td>
						<a href="' . W_ABSPATH . 'user' . $arrMembers[$num]['ID_user'] . '">
							' . $arrMembers[$num]['login'] . '
						</a>
					</td>
				</tr>
				<tr>
					<td>';
						if ($arrProject['ID_user'] != $arrMembers[$num]['ID_user'])
						echo '
						<form method="POST" ation="' . W_ABSPATH . 'editMembers/' . $arrProject['idProject'] . '">
							<input type="image" name="delete" onclick="return confirm(\'Вы действительно хотите удалить пользователя из проекта?\')" src="' . W_IMAGES . 'icons/delete.gif" />
							<input type="hidden" name="idProject" value="' . $arrProject['idProject'] . '" />
							<input type="hidden" name="idUser" value="' . $arrMembers[$num]['ID_user'] . '" />
						</form>';
						echo '
					</td>
				</tr>
			</table>';
		}
		echo '		
		<form action="" method="POST" >		
			<input type="hidden" name="idProject" value="' . $arrProject['idProject'] . '">
			<p><h4>Ввыедите имя пользователя</h4>
				<input type="text" name="login" id="login" />
				<input type="submit" name="add" value="Добавить")">
			</p>
		</form>';		
		echo '<h4 class="floatRight"><a  href="' . W_ABSPATH . 'project/' . $arrProject['idProject'] . '">В "' . $arrProject['name'] . '"</a></h4>';
	}
	
	
	public static function displayLinealTasks($arrTasks, $idUser, $arrProject = NULL, $arrSubTasks = NULL){
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Последние задания</h1>
		</div></div></div></div></div>';
		echo '<p><a href="' . W_ABSPATH . 'project/newTask/' . $arrProject['idProject'] . '">Добавить новое задание</a></p><br />';
		
		$arrSize = sizeof($arrTasks);
		for ($num = 0; $num < $arrSize; $num++){
			self::displayTaskInList($arrTasks[$num], $idUser, isset($arrSubTasks[$arrTasks[$num]['ID_task']]) ? $arrSubTasks[$arrTasks[$num]['ID_task']] : NULL);
		}		
	}
	
	/**
	 * вывод заданий в древовидном виде
	 */
	public static function displayTasks($arrTasks, $arrProject, $idUser, $full_flag = NULL){
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Задания</h1>
		</div></div></div></div></div>';
		echo '
		<p><a href="' . W_ABSPATH . 'project/newTask/' . $arrProject['idProject'] . '">Добавить новое задание</a></p>';
		self::displayTasksTree($arrTasks, $idUser);
		//echo '<a class="floatRight" href="' . W_ABSPATH . 'project/' . $arrProject['idProject'] . '">В "' . $arrProject['name'] . '"</a>';
	}
	
	/**
	 * вывод списка заданий в древовидном виде
	 *
	 */
	public static function displayTasksTree($arrTasks, $idUser, $full_flag = NULL){
		$size = sizeof($arrTasks);
		for ($num = 0; $num < $size; $num++){
			$arrTasks[$num]['ID_root_task'] == NULL ? $class = 'taskRoot' : $class = NULL;//если рутовый, то мы присвоим ему дополнительный css класс для его отображения в рамке
			echo '
			<div class="taskCapsule ' . $class . '">';
				if (isset($full_flag))
					self::dispalyOneTask($arrTasks);
				else self::displayTaskInList($arrTasks[$num], $idUser);				
				if (isset($arrTasks[$num]['children']))
					self::displayTasksTree($arrTasks[$num]['children'], $idUser);
			echo '
			</div>';
		}
	}
	
	/**
	 * вывод одного задания из списка
	 *
	 */
	public static function displayTaskInList($arrTask, $idUser, $countSubTasks = NULL){
			echo 
			'<div class="task">
				• <a href="' . W_ABSPATH . 'project/task/' . $arrTask['ID_task'] . '">' . $arrTask['title'] . '</a><br />
				<div class="floatRight">
					<span>Дата добавления: ' . Service_Date::getCaseDateForUser($arrTask['start_time']) . '</span>';
					if ($arrTask['end_time'] != '0000-00-00') echo ' <br /> <span>Срок до: ' . Service_Date::getCaseDateForUser($arrTask['end_time']) . '</span>';
					echo '
					<p>Статус: ';
						if (isset($arrTask['done_flag'])) echo 'Выполнено</p>';
							elseif ($arrTask['end_time'] != '0000-00-00' AND $arrTask['end_time'] < date('Y-m-d')) echo 'Просрочено';
								else echo 'Выполнение</p>';
					if (isset($countSubTasks))
						echo '<p><a href="' . W_ABSPATH . 'project/task/' . $arrTask['ID_task'] . '">Подзадач: ' . $countSubTasks . '</a></p>';
					echo '
				</div>
				<div>
					<p>' . $arrTask['text'] . '</p>
				</div>
				<div>
					<a href="' . W_ABSPATH . 'user/' . $arrTask['login'] . '/">' . $arrTask['creator_login'] . '</a> -> 
					<a href="' . W_ABSPATH . 'user/' . $arrTask['login'] . '/">' . $arrTask['executor_login'] . '</a>
				</div><br />
				<div style="text-align:right">
					<br />';
					/*if ($arrTask['ID_creator'] == $idUser) 
						echo '
						<form action="' . W_ABSPATH . 'project/task/' . $arrTask['ID_task'] . '" method="post">
							<a class="none" href="' . W_ABSPATH . 'project/addTask/' . $arrTask['ID_task'] . '">Добавить под задание</a>
							<a class="none" href="' . W_ABSPATH . 'project/editTask/' . $arrTask['ID_task'] . '">| Редактировать задание</a>						
							<input type="hidden" name="idTask" value="' . $arrTask['ID_task'] . '" />
							<input type="hidden" name="idProject" value="' . $arrTask['idProject'] . '" />
							<input type="hidden" name="idFirstRoot" value="' . $arrTask['ID_first_root_task'] . '" />
							<input type="submit" onclick="return confirm(\'Удалить задание?\')" name="delete" value="Удалить"/>
						</form>';*/
					if (($arrTask['ID_executor'] OR $arrTask['ID_creator']) == $idUser ){
						echo '
						<form action="' . W_ABSPATH . 'project/task/' . $arrTask['ID_task'] . '" method="post">
							<input type="hidden" name="idTask" value="' . $arrTask['ID_task'] . '" />';
							if (isset($arrTask['done_flag'])) echo '<input type="submit" name="noDone" value="Отметить как невыполненое"/>';
							else echo '<input type="submit" name="done" value="Отметить как выполненное"/>';
						echo '
						</form>';
						if ($arrTask['ID_creator'] == $idUser) 
							echo '
							<form action="' . W_ABSPATH . 'project/task/' . $arrTask['ID_task'] . '" method="post">
								<a class="none" href="' . W_ABSPATH . 'project/addTask/' . $arrTask['ID_task'] . '">Добавить под задание</a>
								<a class="none" href="' . W_ABSPATH . 'project/editTask/' . $arrTask['ID_task'] . '">| Редактировать задание</a>						
								<input type="hidden" name="idTask" value="' . $arrTask['ID_task'] . '" />
								<input type="hidden" name="idProject" value="' . $arrTask['idProject'] . '" />
								<input type="hidden" name="idFirstRoot" value="' . $arrTask['ID_first_root_task'] . '" />
								<input type="submit" onclick="return confirm(\'Удалить задание?\')" name="delete" value="Удалить"/>
							</form>';
					}
				echo '
				</div>
			</div>';
	}
	
	/**
	 * вывод информации об одном задании
	 *
	 * @param unknown_type $arrTask
	 */
	public static function dispalyOneTask($arrTask, $idUser){
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Задание к проекту "' . $arrTask['name'] . '"</h1>
		</div></div></div></div></div>';
		echo '
		<div>
			<h3>' . $arrTask['title'] . '</h3>';		
			if (isset($arrTask['text'])) echo '<p>' . $arrTask['text']  .'</p>';
			echo '
			<p><a href="' . W_ABSPATH . 'user/' . $arrTask['login'] . '/">' . $arrTask['creator_login'] . '</a> 
				-> <a href="' . W_ABSPATH . 'user/' . $arrTask['login'] . '/">' . $arrTask['executor_login'] . '</a>
			</p>';
			echo '
			<p>Статус: ';
				if (isset($arrTask['done_flag'])) echo 'Выполнено</p>';
					elseif ($arrTask['end_time'] != '0000-00-00' AND $arrTask['end_time'] < date('Y-m-d')) echo 'Просрочено';
						else echo 'Выполнение</p>';
			echo '<p>Дата создания: ' . Service_Date::getCaseDateForUser($arrTask['start_time']) . '</p>';
			if ($arrTask['end_time'] != '0000-00-00') echo '<p>Дата выполнения: ' . Service_Date::getCaseDateForUser($arrTask['end_time']) . '</p>';
			if (isset($arrTask['finish_time'])) echo '<p>Закончено: ' . Service_Date::getCaseDateForUser($arrTask['finish_time']) . '</p>';
			if (($arrTask['ID_executor'] OR $arrTask['ID_creator']) == $idUser ){
				echo '
				<form action="' . W_ABSPATH . 'project/task/' . $arrTask['ID_task'] . '" method="post">
					<input type="hidden" name="idTask" value="' . $arrTask['ID_task'] . '" />';
					if (isset($arrTask['done_flag']))
						echo '<input type="submit" name="noEnd" value="Задание невыполнено"/>';
					else{
						echo '<input type="submit" name="';
							if ($arrTask['ID_creator'] == $idUser) echo 'creatorEnd';
							elseif ($arrTask['ID_executor'] == $idUser) echo 'executorEnd';
						echo '" value="Задание выполнено"/>';
					}
				echo '
				</form>';
				echo '
				<form action="' . W_ABSPATH . 'project/task/' . $arrTask['ID_task'] . '" method="post">
					<input type="hidden" name="idTask" value="' . $arrTask['ID_task'] . '" />
					<input type="hidden" name="idProject" value="' . $arrTask['idProject'] . '" />
					<input type="submit" onclick="return confirm(\'Удалить задание?\')" name="delete" value="Удалить"/>
				</form>';
			}
			echo '<br />';
			if ($arrTask['ID_creator'] == $idUser) echo '<a href="' . W_ABSPATH . 'project/editTask/' . $arrTask['ID_task'] . '">Редактировать задание</a>';
			if (isset($arrTask['ID_root_task'])) echo '<br /><p><a href="' . W_ABSPATH . 'project/task/' . $arrTask['ID_root_task'] . '">В корень</a></p>';
			echo '<p><a href="' . W_ABSPATH . 'project/' . $arrTask['idProject'] . '">В "' . $arrTask['name'] . '"</a></p>';
			
		echo '
		</div>
		';
	}
	
	
	public static function displayFormNewTask($arrProject, $arrMembers, $idUser, $arrInformation, $idRootTask = NULL, $idFirstRootTask = NULL){
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Добавление новго задания в проект "' . $arrProject['name'] . '"</h1>
		</div></div></div></div></div>';
		View_User::showUserMessage(User_User::getUserMessage(), User_User::getUserMessageType());
		echo '
			<form method="POST" action="' /*. W_ABSPATH . 'project/' . $arrProject['idProject']*/ . '">
				<p>Задание:</p>
				<p><input type="text" name="title" value="'; if (isset($arrInformation['title'])) echo $arrInformation['title']; echo '" style="width:720px;"/></p>
				<p>Дополнительная информация:</p>
				<p><textarea name="text" style="width:720px;">'; if (isset($arrInformation['text'])) echo $arrInformation['text']; echo '</textarea></p>
				<p>Ответственный: </p>
				<p><select name="idExecutor"> 
						<option value=""></option>';
						for ($num = 0; $num < sizeof($arrMembers); $num++){
							echo '
						<option value="' . $arrMembers[$num]['ID_user'] . '" '; 
							if (isset($arrInformation['idExecutor']) AND $arrInformation['idExecutor'] == $arrMembers[$num]['ID_user']) 
								echo 'selected="selected"'; 
						echo '>
							' . $arrMembers[$num]['login'] . '
						</option>';
					}
					echo '		
				</select>
			</p>
			<p>Дата выполнения:(необязательное поле)</p>
			<p>
			День
			<select name="day">
				<option value="empty"></option>';//День
				for ($num = 1; $num < 32; $num++){
					$num < 10 ? $num1 = 0 . $num : $num1 = $num;
					echo '
					<option value="' . $num1 . '" '; 
						if (isset($arrInformation['day']) AND $arrInformation['day'] == $num1) 
							echo 'selected="selected"'; 
						echo '>
						' . $num1 . '
					</option> ';
				}
				echo '
			</select> ';
			echo 'Месяц<select name="month">
							<option value="empty"></option>';//Месяц
			for ($num = 1; $num < 13; $num++){
				$num < 10 ? $num1 = 0 . $num : $num1 = $num;
				echo '
				<option value="' . $num1 . '" '; 
					if (isset($arrInformation['month']) AND $arrInformation['month'] == $num1) 
						echo 'selected="selected"'; 
				echo '>
				' . $num1 . '
				</option>';
			}
			echo '</select>&nbsp;';
			
			echo 'Год<select name="year">
								<option value="empty"></option>';//ГОД
			for ($num = date('Y'); $num < (date('Y') + 5); $num++){
				echo '
				<option value="' . $num . '" ';
					if (isset($arrInformation['year']) AND $arrInformation['year'] == $num) 
						echo 'selected="selected"'; 
					echo '>
					' . $num . '
				</option>';
			}
			echo '</select></p>
			<input type="hidden" name="idProject" value="' . $arrProject['idProject'] . '" />
			<input type="hidden" name="idCreator" value="' . $idUser . '" />';
			if (isset($idFirstRootTask)) echo '<input type="hidden" name="ID_first_root_task" value="' . $idFirstRootTask . '" />';
			if (isset($idRootTask)) echo '<input type="hidden" name="ID_root_task" value="' . $idRootTask . '" />';
			if (isset($arrInformation['ID_task'])) echo '<input type="hidden" name="ID_task" value="' . $arrInformation['ID_task'] . '" />';
			echo '
			<input type="submit" name="save" value="Сохранить" />
		</form>
		<p><a href="' . W_ABSPATH . 'project/' . $arrProject['idProject'] . '">В проект</a></p>
		';			
	}
	
	
	public static function displayViewDateActive($idProject, $arrDatePost = NULL, $date = NULL, $arrActivityFinish = NULL, $arrActivityAdd){
		$arrDate['year'] = date('Y');
		$arrDate['month'] = date('m');
		$arrDate['day'] = date('d');		
		echo '
		<div class="blueTitle"><div><div><div><div>
			<h1 class="blockName">Посмотреть дневную активность</h1>
		</div></div></div></div></div>
		<form method="post" action="' . W_ABSPATH . 'project/' . $idProject . '">
			<p>
			День
			<select name="day">';//День
				for ($num = 1; $num < 32; $num++){
					$num < 10 ? $num1 = 0 . $num : $num1 = $num;
					echo '
					<option value="' . $num1 . '" ';
						if (isset($arrDatePost['day']) AND $arrDatePost['day'] == $num1){
							echo 'selected="selected"';
							$arrDate['day'] = NULL;
						}
						elseif ($arrDate['day'] == $num1)
							echo 'selected="selected"';
						echo '>
						' . $num1 . '
					</option> ';
				}
				echo '
			</select> ';
			echo 'Месяц<select name="month">';//Месяц
			for ($num = 1; $num < 13; $num++){
				$num < 10 ? $num1 = 0 . $num : $num1 = $num;
				echo '
				<option value="' . $num1 . '" '; 
					if (isset($arrDatePost['month']) AND $arrDatePost['month'] == $num1){
						echo 'selected="selected"';
						$arrDate['month'] = NULL;
					}
					elseif ($arrDate['month'] == $num1)
						echo 'selected="selected"';
				echo '>
				' . $num1 . '
				</option>';
			}
			echo '</select>&nbsp;';
			
			echo 'Год<select name="year">';//ГОД
			for ($num = 2009; $num <= $arrDate['year']; $num++){
				echo $num . '=' . $arrDatePost['year'];
				echo '
				<option value="' . $num . '" ';
					if (isset($arrDatePost['year']) AND $arrDatePost['year'] == $num){
						echo 'selected="selected"';
						$arrDate['year'] = NULL;
					}
					elseif ($arrDate['year'] == $num)
						echo 'selected="selected"'; 
					echo '>
					' . $num . '
				</option>';
			}
			echo '</select></p>
			<input type="hidden" name="idProject" value="' . $idProject . '" />
			<input type="submit" name="showDate" value="Показать" />
		</form>';
		
		if (isset($date)) self::displayActivityArray($arrActivityFinish, $arrActivityAdd);
	}
	
	/**
	 * отображения списков активности в проекте
	 */
	public static function displayActivityArray($arrActivityFinish, $arrActivityAdd){
		if (!empty($arrActivityFinish) or !empty($arrActivityAdd)){
				if (!empty($arrActivityFinish))
					echo '
						<div class="blueTitle"><div><div><div><div>
							<h1 class="blockName">Законченные задания</h1>
						</div></div></div></div></div>';
						$size = sizeof($arrActivityFinish);
						for ($num = 0; $num < $size; $num++){
							echo '
							<div class="task">
								<p>' . $arrActivityFinish[$num]['executor_login'] . ' выполнил поручение ' . $arrActivityFinish[$num]['creator_login'] . '</p>
								<p>' . $arrActivityFinish[$num]['title'] . '</p>
							</div>';
						}
				if (!empty($arrActivityAdd))
					echo '
						<div class="blueTitle"><div><div><div><div>
							<h1 class="blockName">Добавленные задания</h1>
						</div></div></div></div></div>';
						$size = sizeof($arrActivityAdd);
						for ($num = 0; $num < $size; $num++){
							echo '
							<div class="task">
								<p>' . $arrActivityAdd[$num]['creator_login'] . ' добавил задание ' . $arrActivityAdd[$num]['executor_login'] . '</p>
								<p>' . $arrActivityAdd[$num]['title'] . '</p>
							</div>';
						}
			}
			else {
				echo '<h4>Активности не было</h4>';
			}
	}
}
?>